// 默认配置及拦截处理
const setInterceptor = (Vue, vm) => {
  // 配置默认参数
  let baseUrl = '/api';
  // #ifdef MP-WEIXIN
  baseUrl = 'https://applet-biz-api.deep$tel.com.cn'; // 删除 $ 后再运行
  // #endif
  const options = {
    baseUrl,
    loadingText: '加载中...',
    loadingTime: 800,
    loadingMask: true,
    originalData: true, // 是否在拦截器中返回服务端的原始数据
    // 配置请求头信息
    header: {
      'content-type': 'application/json;charset=UTF-8',
    },
  };
  // 自定义 header 参数
  options.header.MAIN_BUS = 36;
  // #ifdef H5
  options.header.LOGIN_SOURCE = 0;
  // #endif
  // #ifdef MP-WEIXIN
  options.header.LOGIN_SOURCE = 2;
  // #endif
  Vue.prototype.$u.http.setConfig(options);

  // 请求拦截，配置 Token 等参数
  Vue.prototype.$u.http.interceptor.request = (config) => {
    console.log('请求拦截 :>> ', config);
    config.header.token = vm.$store.state.token;
    return config; // 如果return一个false值，则会取消本次请求
  };

  // 响应拦截，判断状态码是否通过
  Vue.prototype.$u.http.interceptor.response = (response) => {
    console.log('响应拦截 :>> ', response);
    const { data } = response;
    if (data.code === -100) {
      const { message = '验证失败，请重新登录' } = data;
      vm.$u.toast(message);
    } if (data.code !== 0) {
      const { message = '请求失败' } = data;
      vm.$u.toast(message);
    }
    return data;
  };
};

export default setInterceptor;
